{"ast":null,"code":"import { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport compareAsc from \"../compareAsc/index.js\";\nimport differenceInMonths from \"../differenceInMonths/index.js\";\nimport differenceInSeconds from \"../differenceInSeconds/index.js\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport cloneObject from \"../_lib/cloneObject/index.js\";\nimport assign from \"../_lib/assign/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MINUTES_IN_DAY = 1440;\nvar MINUTES_IN_ALMOST_TWO_DAYS = 2520;\nvar MINUTES_IN_MONTH = 43200;\nvar MINUTES_IN_TWO_MONTHS = 86400;\n/**\n * @name formatDistance\n * @category Common Helpers\n * @summary Return the distance between the given dates in words.\n *\n * @description\n * Return the distance between the given dates in words.\n *\n * | Distance between dates                                            | Result              |\n * |-------------------------------------------------------------------|---------------------|\n * | 0 ... 30 secs                                                     | less than a minute  |\n * | 30 secs ... 1 min 30 secs                                         | 1 minute            |\n * | 1 min 30 secs ... 44 mins 30 secs                                 | [2..44] minutes     |\n * | 44 mins ... 30 secs ... 89 mins 30 secs                           | about 1 hour        |\n * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs                        | about [2..24] hours |\n * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs                 | 1 day               |\n * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs         | [2..30] days        |\n * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month       |\n * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months      |\n * | 59 days 23 hrs 59 mins 30 secs ... 1 yr                           | [2..12] months      |\n * | 1 yr ... 1 yr 3 months                                            | about 1 year        |\n * | 1 yr 3 months ... 1 yr 9 month s                                  | over 1 year         |\n * | 1 yr 9 months ... 2 yrs                                           | almost 2 years      |\n * | N yrs ... N yrs 3 months                                          | about N years       |\n * | N yrs 3 months ... N yrs 9 months                                 | over N years        |\n * | N yrs 9 months ... N+1 yrs                                        | almost N+1 years    |\n *\n * With `options.includeSeconds == true`:\n * | Distance between dates | Result               |\n * |------------------------|----------------------|\n * | 0 secs ... 5 secs      | less than 5 seconds  |\n * | 5 secs ... 10 secs     | less than 10 seconds |\n * | 10 secs ... 20 secs    | less than 20 seconds |\n * | 20 secs ... 40 secs    | half a minute        |\n * | 40 secs ... 60 secs    | less than a minute   |\n * | 60 secs ... 90 secs    | 1 minute             |\n *\n * @param {Date|Number} date - the date\n * @param {Date|Number} baseDate - the date to compare with\n * @param {Object} [options] - an object with options.\n * @param {Boolean} [options.includeSeconds=false] - distances less than a minute are more detailed\n * @param {Boolean} [options.addSuffix=false] - result indicates if the second date is earlier or later than the first\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @returns {String} the distance in words\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `baseDate` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `formatDistance` property\n *\n * @example\n * // What is the distance between 2 July 2014 and 1 January 2015?\n * const result = formatDistance(new Date(2014, 6, 2), new Date(2015, 0, 1))\n * //=> '6 months'\n *\n * @example\n * // What is the distance between 1 January 2015 00:00:15\n * // and 1 January 2015 00:00:00, including seconds?\n * const result = formatDistance(\n *   new Date(2015, 0, 1, 0, 0, 15),\n *   new Date(2015, 0, 1, 0, 0, 0),\n *   { includeSeconds: true }\n * )\n * //=> 'less than 20 seconds'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, with a suffix?\n * const result = formatDistance(new Date(2015, 0, 1), new Date(2016, 0, 1), {\n *   addSuffix: true\n * })\n * //=> 'about 1 year ago'\n *\n * @example\n * // What is the distance between 1 August 2016 and 1 January 2015 in Esperanto?\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = formatDistance(new Date(2016, 7, 1), new Date(2015, 0, 1), {\n *   locale: eoLocale\n * })\n * //=> 'pli ol 1 jaro'\n */\n\nexport default function formatDistance(dirtyDate, dirtyBaseDate, options) {\n  var _ref, _options$locale;\n  requiredArgs(2, arguments);\n  var defaultOptions = getDefaultOptions();\n  var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n  if (!locale.formatDistance) {\n    throw new RangeError('locale must contain formatDistance property');\n  }\n  var comparison = compareAsc(dirtyDate, dirtyBaseDate);\n  if (isNaN(comparison)) {\n    throw new RangeError('Invalid time value');\n  }\n  var localizeOptions = assign(cloneObject(options), {\n    addSuffix: Boolean(options === null || options === void 0 ? void 0 : options.addSuffix),\n    comparison: comparison\n  });\n  var dateLeft;\n  var dateRight;\n  if (comparison > 0) {\n    dateLeft = toDate(dirtyBaseDate);\n    dateRight = toDate(dirtyDate);\n  } else {\n    dateLeft = toDate(dirtyDate);\n    dateRight = toDate(dirtyBaseDate);\n  }\n  var seconds = differenceInSeconds(dateRight, dateLeft);\n  var offsetInSeconds = (getTimezoneOffsetInMilliseconds(dateRight) - getTimezoneOffsetInMilliseconds(dateLeft)) / 1000;\n  var minutes = Math.round((seconds - offsetInSeconds) / 60);\n  var months; // 0 up to 2 mins\n\n  if (minutes < 2) {\n    if (options !== null && options !== void 0 && options.includeSeconds) {\n      if (seconds < 5) {\n        return locale.formatDistance('lessThanXSeconds', 5, localizeOptions);\n      } else if (seconds < 10) {\n        return locale.formatDistance('lessThanXSeconds', 10, localizeOptions);\n      } else if (seconds < 20) {\n        return locale.formatDistance('lessThanXSeconds', 20, localizeOptions);\n      } else if (seconds < 40) {\n        return locale.formatDistance('halfAMinute', 0, localizeOptions);\n      } else if (seconds < 60) {\n        return locale.formatDistance('lessThanXMinutes', 1, localizeOptions);\n      } else {\n        return locale.formatDistance('xMinutes', 1, localizeOptions);\n      }\n    } else {\n      if (minutes === 0) {\n        return locale.formatDistance('lessThanXMinutes', 1, localizeOptions);\n      } else {\n        return locale.formatDistance('xMinutes', minutes, localizeOptions);\n      }\n    } // 2 mins up to 0.75 hrs\n  } else if (minutes < 45) {\n    return locale.formatDistance('xMinutes', minutes, localizeOptions); // 0.75 hrs up to 1.5 hrs\n  } else if (minutes < 90) {\n    return locale.formatDistance('aboutXHours', 1, localizeOptions); // 1.5 hrs up to 24 hrs\n  } else if (minutes < MINUTES_IN_DAY) {\n    var hours = Math.round(minutes / 60);\n    return locale.formatDistance('aboutXHours', hours, localizeOptions); // 1 day up to 1.75 days\n  } else if (minutes < MINUTES_IN_ALMOST_TWO_DAYS) {\n    return locale.formatDistance('xDays', 1, localizeOptions); // 1.75 days up to 30 days\n  } else if (minutes < MINUTES_IN_MONTH) {\n    var days = Math.round(minutes / MINUTES_IN_DAY);\n    return locale.formatDistance('xDays', days, localizeOptions); // 1 month up to 2 months\n  } else if (minutes < MINUTES_IN_TWO_MONTHS) {\n    months = Math.round(minutes / MINUTES_IN_MONTH);\n    return locale.formatDistance('aboutXMonths', months, localizeOptions);\n  }\n  months = differenceInMonths(dateRight, dateLeft); // 2 months up to 12 months\n\n  if (months < 12) {\n    var nearestMonth = Math.round(minutes / MINUTES_IN_MONTH);\n    return locale.formatDistance('xMonths', nearestMonth, localizeOptions); // 1 year up to max Date\n  } else {\n    var monthsSinceStartOfYear = months % 12;\n    var years = Math.floor(months / 12); // N years up to 1 years 3 months\n\n    if (monthsSinceStartOfYear < 3) {\n      return locale.formatDistance('aboutXYears', years, localizeOptions); // N years 3 months up to N years 9 months\n    } else if (monthsSinceStartOfYear < 9) {\n      return locale.formatDistance('overXYears', years, localizeOptions); // N years 9 months up to N year 12 months\n    } else {\n      return locale.formatDistance('almostXYears', years + 1, localizeOptions);\n    }\n  }\n}","map":{"version":3,"names":["getDefaultOptions","compareAsc","differenceInMonths","differenceInSeconds","defaultLocale","toDate","cloneObject","assign","getTimezoneOffsetInMilliseconds","requiredArgs","MINUTES_IN_DAY","MINUTES_IN_ALMOST_TWO_DAYS","MINUTES_IN_MONTH","MINUTES_IN_TWO_MONTHS","formatDistance","dirtyDate","dirtyBaseDate","options","_ref","_options$locale","arguments","defaultOptions","locale","RangeError","comparison","isNaN","localizeOptions","addSuffix","Boolean","dateLeft","dateRight","seconds","offsetInSeconds","minutes","Math","round","months","includeSeconds","hours","days","nearestMonth","monthsSinceStartOfYear","years","floor"],"sources":["/data/messenger.client/node_modules/date-fns/esm/formatDistance/index.js"],"sourcesContent":["import { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport compareAsc from \"../compareAsc/index.js\";\nimport differenceInMonths from \"../differenceInMonths/index.js\";\nimport differenceInSeconds from \"../differenceInSeconds/index.js\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport cloneObject from \"../_lib/cloneObject/index.js\";\nimport assign from \"../_lib/assign/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MINUTES_IN_DAY = 1440;\nvar MINUTES_IN_ALMOST_TWO_DAYS = 2520;\nvar MINUTES_IN_MONTH = 43200;\nvar MINUTES_IN_TWO_MONTHS = 86400;\n/**\n * @name formatDistance\n * @category Common Helpers\n * @summary Return the distance between the given dates in words.\n *\n * @description\n * Return the distance between the given dates in words.\n *\n * | Distance between dates                                            | Result              |\n * |-------------------------------------------------------------------|---------------------|\n * | 0 ... 30 secs                                                     | less than a minute  |\n * | 30 secs ... 1 min 30 secs                                         | 1 minute            |\n * | 1 min 30 secs ... 44 mins 30 secs                                 | [2..44] minutes     |\n * | 44 mins ... 30 secs ... 89 mins 30 secs                           | about 1 hour        |\n * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs                        | about [2..24] hours |\n * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs                 | 1 day               |\n * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs         | [2..30] days        |\n * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month       |\n * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months      |\n * | 59 days 23 hrs 59 mins 30 secs ... 1 yr                           | [2..12] months      |\n * | 1 yr ... 1 yr 3 months                                            | about 1 year        |\n * | 1 yr 3 months ... 1 yr 9 month s                                  | over 1 year         |\n * | 1 yr 9 months ... 2 yrs                                           | almost 2 years      |\n * | N yrs ... N yrs 3 months                                          | about N years       |\n * | N yrs 3 months ... N yrs 9 months                                 | over N years        |\n * | N yrs 9 months ... N+1 yrs                                        | almost N+1 years    |\n *\n * With `options.includeSeconds == true`:\n * | Distance between dates | Result               |\n * |------------------------|----------------------|\n * | 0 secs ... 5 secs      | less than 5 seconds  |\n * | 5 secs ... 10 secs     | less than 10 seconds |\n * | 10 secs ... 20 secs    | less than 20 seconds |\n * | 20 secs ... 40 secs    | half a minute        |\n * | 40 secs ... 60 secs    | less than a minute   |\n * | 60 secs ... 90 secs    | 1 minute             |\n *\n * @param {Date|Number} date - the date\n * @param {Date|Number} baseDate - the date to compare with\n * @param {Object} [options] - an object with options.\n * @param {Boolean} [options.includeSeconds=false] - distances less than a minute are more detailed\n * @param {Boolean} [options.addSuffix=false] - result indicates if the second date is earlier or later than the first\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @returns {String} the distance in words\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `baseDate` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `formatDistance` property\n *\n * @example\n * // What is the distance between 2 July 2014 and 1 January 2015?\n * const result = formatDistance(new Date(2014, 6, 2), new Date(2015, 0, 1))\n * //=> '6 months'\n *\n * @example\n * // What is the distance between 1 January 2015 00:00:15\n * // and 1 January 2015 00:00:00, including seconds?\n * const result = formatDistance(\n *   new Date(2015, 0, 1, 0, 0, 15),\n *   new Date(2015, 0, 1, 0, 0, 0),\n *   { includeSeconds: true }\n * )\n * //=> 'less than 20 seconds'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, with a suffix?\n * const result = formatDistance(new Date(2015, 0, 1), new Date(2016, 0, 1), {\n *   addSuffix: true\n * })\n * //=> 'about 1 year ago'\n *\n * @example\n * // What is the distance between 1 August 2016 and 1 January 2015 in Esperanto?\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = formatDistance(new Date(2016, 7, 1), new Date(2015, 0, 1), {\n *   locale: eoLocale\n * })\n * //=> 'pli ol 1 jaro'\n */\n\nexport default function formatDistance(dirtyDate, dirtyBaseDate, options) {\n  var _ref, _options$locale;\n\n  requiredArgs(2, arguments);\n  var defaultOptions = getDefaultOptions();\n  var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n\n  if (!locale.formatDistance) {\n    throw new RangeError('locale must contain formatDistance property');\n  }\n\n  var comparison = compareAsc(dirtyDate, dirtyBaseDate);\n\n  if (isNaN(comparison)) {\n    throw new RangeError('Invalid time value');\n  }\n\n  var localizeOptions = assign(cloneObject(options), {\n    addSuffix: Boolean(options === null || options === void 0 ? void 0 : options.addSuffix),\n    comparison: comparison\n  });\n  var dateLeft;\n  var dateRight;\n\n  if (comparison > 0) {\n    dateLeft = toDate(dirtyBaseDate);\n    dateRight = toDate(dirtyDate);\n  } else {\n    dateLeft = toDate(dirtyDate);\n    dateRight = toDate(dirtyBaseDate);\n  }\n\n  var seconds = differenceInSeconds(dateRight, dateLeft);\n  var offsetInSeconds = (getTimezoneOffsetInMilliseconds(dateRight) - getTimezoneOffsetInMilliseconds(dateLeft)) / 1000;\n  var minutes = Math.round((seconds - offsetInSeconds) / 60);\n  var months; // 0 up to 2 mins\n\n  if (minutes < 2) {\n    if (options !== null && options !== void 0 && options.includeSeconds) {\n      if (seconds < 5) {\n        return locale.formatDistance('lessThanXSeconds', 5, localizeOptions);\n      } else if (seconds < 10) {\n        return locale.formatDistance('lessThanXSeconds', 10, localizeOptions);\n      } else if (seconds < 20) {\n        return locale.formatDistance('lessThanXSeconds', 20, localizeOptions);\n      } else if (seconds < 40) {\n        return locale.formatDistance('halfAMinute', 0, localizeOptions);\n      } else if (seconds < 60) {\n        return locale.formatDistance('lessThanXMinutes', 1, localizeOptions);\n      } else {\n        return locale.formatDistance('xMinutes', 1, localizeOptions);\n      }\n    } else {\n      if (minutes === 0) {\n        return locale.formatDistance('lessThanXMinutes', 1, localizeOptions);\n      } else {\n        return locale.formatDistance('xMinutes', minutes, localizeOptions);\n      }\n    } // 2 mins up to 0.75 hrs\n\n  } else if (minutes < 45) {\n    return locale.formatDistance('xMinutes', minutes, localizeOptions); // 0.75 hrs up to 1.5 hrs\n  } else if (minutes < 90) {\n    return locale.formatDistance('aboutXHours', 1, localizeOptions); // 1.5 hrs up to 24 hrs\n  } else if (minutes < MINUTES_IN_DAY) {\n    var hours = Math.round(minutes / 60);\n    return locale.formatDistance('aboutXHours', hours, localizeOptions); // 1 day up to 1.75 days\n  } else if (minutes < MINUTES_IN_ALMOST_TWO_DAYS) {\n    return locale.formatDistance('xDays', 1, localizeOptions); // 1.75 days up to 30 days\n  } else if (minutes < MINUTES_IN_MONTH) {\n    var days = Math.round(minutes / MINUTES_IN_DAY);\n    return locale.formatDistance('xDays', days, localizeOptions); // 1 month up to 2 months\n  } else if (minutes < MINUTES_IN_TWO_MONTHS) {\n    months = Math.round(minutes / MINUTES_IN_MONTH);\n    return locale.formatDistance('aboutXMonths', months, localizeOptions);\n  }\n\n  months = differenceInMonths(dateRight, dateLeft); // 2 months up to 12 months\n\n  if (months < 12) {\n    var nearestMonth = Math.round(minutes / MINUTES_IN_MONTH);\n    return locale.formatDistance('xMonths', nearestMonth, localizeOptions); // 1 year up to max Date\n  } else {\n    var monthsSinceStartOfYear = months % 12;\n    var years = Math.floor(months / 12); // N years up to 1 years 3 months\n\n    if (monthsSinceStartOfYear < 3) {\n      return locale.formatDistance('aboutXYears', years, localizeOptions); // N years 3 months up to N years 9 months\n    } else if (monthsSinceStartOfYear < 9) {\n      return locale.formatDistance('overXYears', years, localizeOptions); // N years 9 months up to N year 12 months\n    } else {\n      return locale.formatDistance('almostXYears', years + 1, localizeOptions);\n    }\n  }\n}"],"mappings":"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"},"metadata":{},"sourceType":"module"}